home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / teddy-1a / form1.frm (.txt) next >
Visual Basic Form  |  1999-09-20  |  8KB  |  217 lines

  1. VERSION 5.00
  2. Begin VB.Form frmMain 
  3.    BorderStyle     =   0  'None
  4.    Caption         =   "Form1"
  5.    ClientHeight    =   3435
  6.    ClientLeft      =   0
  7.    ClientTop       =   0
  8.    ClientWidth     =   6345
  9.    LinkTopic       =   "Form1"
  10.    MaxButton       =   0   'False
  11.    MinButton       =   0   'False
  12.    ScaleHeight     =   3435
  13.    ScaleWidth      =   6345
  14.    ShowInTaskbar   =   0   'False
  15.    StartUpPosition =   2  'CenterScreen
  16.    Begin VB.Line Line3 
  17.       Tag             =   "1"
  18.       X1              =   4500
  19.       X2              =   3180
  20.       Y1              =   2640
  21.       Y2              =   2640
  22.    End
  23.    Begin VB.Line Line2 
  24.       Tag             =   "1"
  25.       X1              =   3960
  26.       X2              =   3180
  27.       Y1              =   2280
  28.       Y2              =   2640
  29.    End
  30.    Begin VB.Label Label1 
  31.       Alignment       =   2  'Center
  32.       BackStyle       =   0  'Transparent
  33.       Caption         =   "I'm Nigel. I'm nice!"
  34.       BeginProperty Font 
  35.          Name            =   "MS Sans Serif"
  36.          Size            =   13.5
  37.          Charset         =   0
  38.          Weight          =   700
  39.          Underline       =   0   'False
  40.          Italic          =   0   'False
  41.          Strikethrough   =   0   'False
  42.       EndProperty
  43.       Height          =   855
  44.       Left            =   4200
  45.       TabIndex        =   0
  46.       Tag             =   "1"
  47.       Top             =   1800
  48.       Width           =   1515
  49.    End
  50.    Begin VB.Shape Shape9 
  51.       BackColor       =   &H0080FFFF&
  52.       BackStyle       =   1  'Opaque
  53.       BorderWidth     =   2
  54.       FillColor       =   &H00C0FFFF&
  55.       Height          =   1155
  56.       Left            =   3960
  57.       Shape           =   2  'Oval
  58.       Top             =   1560
  59.       Width           =   1935
  60.    End
  61.    Begin VB.Line Line1 
  62.       Tag             =   "1"
  63.       X1              =   720
  64.       X2              =   3120
  65.       Y1              =   2940
  66.       Y2              =   2940
  67.    End
  68.    Begin VB.Shape Shape8 
  69.       BackStyle       =   1  'Opaque
  70.       FillStyle       =   3  'Vertical Line
  71.       Height          =   495
  72.       Left            =   720
  73.       Shape           =   4  'Rounded Rectangle
  74.       Top             =   2700
  75.       Width           =   2415
  76.    End
  77.    Begin VB.Shape Shape7 
  78.       FillStyle       =   0  'Solid
  79.       Height          =   495
  80.       Left            =   1440
  81.       Shape           =   2  'Oval
  82.       Top             =   1800
  83.       Width           =   495
  84.    End
  85.    Begin VB.Shape Shape6 
  86.       FillStyle       =   0  'Solid
  87.       Height          =   855
  88.       Left            =   2040
  89.       Shape           =   2  'Oval
  90.       Top             =   840
  91.       Width           =   975
  92.    End
  93.    Begin VB.Shape Shape5 
  94.       FillStyle       =   0  'Solid
  95.       Height          =   975
  96.       Left            =   420
  97.       Shape           =   2  'Oval
  98.       Top             =   720
  99.       Width           =   975
  100.    End
  101.    Begin VB.Shape Shape1 
  102.       FillColor       =   &H00FFFFC0&
  103.       FillStyle       =   0  'Solid
  104.       Height          =   1575
  105.       Left            =   120
  106.       Shape           =   2  'Oval
  107.       Top             =   120
  108.       Width           =   1455
  109.    End
  110.    Begin VB.Shape Shape3 
  111.       FillColor       =   &H00FFFFC0&
  112.       FillStyle       =   0  'Solid
  113.       Height          =   1695
  114.       Left            =   1920
  115.       Shape           =   2  'Oval
  116.       Top             =   120
  117.       Width           =   1815
  118.    End
  119.    Begin VB.Shape Shape4 
  120.       FillStyle       =   0  'Solid
  121.       Height          =   1815
  122.       Left            =   0
  123.       Shape           =   2  'Oval
  124.       Top             =   0
  125.       Width           =   1695
  126.    End
  127.    Begin VB.Shape Shape2 
  128.       FillStyle       =   0  'Solid
  129.       Height          =   1935
  130.       Left            =   1800
  131.       Shape           =   2  'Oval
  132.       Top             =   0
  133.       Width           =   2055
  134.    End
  135. Attribute VB_Name = "frmMain"
  136. Attribute VB_GlobalNameSpace = False
  137. Attribute VB_Creatable = False
  138. Attribute VB_PredeclaredId = True
  139. Attribute VB_Exposed = False
  140. Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
  141. Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
  142. Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
  143. Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
  144. Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
  145. Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
  146. Private Type POINTAPI
  147.     X As Long
  148.     Y As Long
  149. End Type
  150. Const Shape_Rectange = 0
  151. Const Shape_Square = 1
  152. Const Shape_Oval = 2
  153. Const Shape_Circle = 3
  154. Const Shape_RndRectange = 4
  155. Const Shape_RndSquare = 4
  156. Const conHwndTopmost = -1
  157. Const conHwndNoTopmost = -2
  158. Const RGN_AND = 1
  159. Const RGN_COPY = 5
  160. Const RGN_DIFF = 4
  161. Const RGN_OR = 2
  162. Const RGN_XOR = 3
  163. Dim MousePos As POINTAPI
  164. Dim DoDrag As Boolean, Dp As POINTAPI
  165. Private Sub Form_Load()
  166.     AlwaysOnTop True
  167.     Dim t, elipHnd(999999) As Long
  168.     Dim n As Integer, eod As Integer
  169.     n = -1
  170.     eod = 0
  171.     For Each t In frmMain
  172.         If t.Tag <> "1" Then
  173.             n = n + 1
  174.             eod = eod + 1
  175.             Select Case t
  176.                 Case Shape_Rectange: elipHnd(n) = CreateRectRgn(t.Left / 15, t.Top / 15, (t.Left + t.Width) / 15, (t.Top + t.Height) / 15)
  177.                 Case Shape_Oval: elipHnd(n) = CreateEllipticRgn(t.Left / 15, t.Top / 15, (t.Left + t.Width) / 15, (t.Top + t.Height) / 15)
  178.                 Case Shape_RndRectange: elipHnd(n) = CreateRoundRectRgn(t.Left / 15, t.Top / 15, (t.Left + t.Width) / 15, (t.Top + t.Height) / 15, 10, 10)
  179.              End Select
  180.             If (eod = 2) And (n = 1) Then
  181.                 CombineRgn elipHnd(0), elipHnd(1), elipHnd(0), RGN_OR
  182.                 eod = 0
  183.             End If
  184.             If (eod = 2) And (n <> 1) Then
  185.                 CombineRgn elipHnd(n - 2), elipHnd(n - 1), elipHnd(n), RGN_OR
  186.                 CombineRgn elipHnd(0), elipHnd(0), elipHnd(n - 2), RGN_OR
  187.                 eod = 0
  188.             End If
  189.         End If
  190.     Next t
  191.     SetWindowRgn Me.hwnd, elipHnd(0), True
  192. End Sub
  193. Private Sub AlwaysOnTop(TOF As Boolean)
  194.     If TOF = True Then
  195.         ' Turn on the TopMost attribute.
  196.         SetWindowPos hwnd, conHwndTopmost, 0, 0, 0, 0, 3
  197.     Else
  198.         ' Turn off the TopMost attribute.
  199.         SetWindowPos hwnd, conHwndNoTopmost, 0, 0, 0, 0, 3
  200.     End If
  201. End Sub
  202. Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  203.     If Button = 1 Then
  204.         Me.MousePointer = vbSizePointer
  205.         Dp.X = X
  206.         Dp.Y = Y
  207.         DoDrag = True
  208.     End If
  209. End Sub
  210. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  211.     If DoDrag Then Me.Move Me.Left + X - Dp.X, Me.Top + Y - Dp.Y
  212. End Sub
  213. Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  214.     DoDrag = False
  215.     Me.MousePointer = Default
  216. End Sub
  217.